package com.itheima.api.stream.demo06;

import java.util.ArrayList;
import java.util.stream.Stream;

// Stream流的练习题
public class StreamDemo01 {

    /**
     * 现在有两个ArrayList集合，分别存储6名男演员名称和6名女演员名称，要求完成如下的操作
     *
     * 1. 男演员只要名字为3个字的前三人
     * 2. 女演员只要姓林的，并且不要第一个
     * 3. 把过滤后的男演员姓名和女演员姓名合并到一起
     * 4. 把上一步操作后的元素作为构造方法的参数创建演员对象(Actor),遍历数据
     */
    public static void main(String[] args) {

        // 现在有两个ArrayList集合
        ArrayList<String> manActorArrayList = new ArrayList<String>() ;
        ArrayList<String> womanActorArrayList = new ArrayList<String>() ;

        // 添加元素
        manActorArrayList.add("张国立");
        manActorArrayList.add("黄日华");
        manActorArrayList.add("刘烨");
        manActorArrayList.add("郑伊健");
        manActorArrayList.add("徐峥");
        manActorArrayList.add("王宝强");

        womanActorArrayList.add("刘亦菲");
        womanActorArrayList.add("林青霞");
        womanActorArrayList.add("林岚") ;
        womanActorArrayList.add("林允儿");
        womanActorArrayList.add("贾玲") ;
        womanActorArrayList.add("张曼玉") ;

        // 男演员只要名字为3个字的前三人
        Stream<String> manStream = manActorArrayList.stream().filter(s -> s.length() == 3).limit(3);

        // 女演员只要姓林的，并且不要第一个
        Stream<String> womanStream = womanActorArrayList.stream().filter(s -> s.startsWith("林")).skip(1);

        // 把过滤后的男演员姓名和女演员姓名合并到一起
        Stream<String> stream = Stream.concat(manStream, womanStream);

        // 对stream进行遍历
        stream.forEach( s -> {
            Actor actor = new Actor(s) ;
            System.out.println(actor);
        });

    }

}
